<?php
if(!defined('IN_MIGSYS')) define('IN_MIGSYS', true);
if(!isset($migsys_root_path)) $migsys_root_path = './../';
require_once($migsys_root_path . 'common.php');
require_once($migsys_root_path .'Testes/simpletest/autorun.php');
require_once($migsys_root_path .'admin/register.php');
/**
 *
 * Realiza os testes dos cadastros feitos no banco de dados.
 * @author Igo
 */
class TestDiscipline extends UnitTestCase{

         var $nome = qualquerhahha;
         var $codigo = 300;
         var $cargahoraria = 60;
         var $semestre = 5;
         var $departamentoid = 2;
         var $tipodisciplina = 2;

         var $nomedepartamento = 123;
         var $emaildepartamento= "teste@teste.com";

         var $disciplina = 9;
         var $semestreOfertaSemestral = 4;
         var $docente = 4;
         var $numerovagas = 4;

         var $semestrecadSemestre= 8;

         var $login = teste;
         var $senha = teste;
         var $tipo = 1;
         var $nomeuser = teste;
         var $cpf = 00000000000;
         var $email= teste;

         var $useridphone="17";
         var $numerophone="444475544";

         var $useridEnd =17;
         var $logradouro = teste;
         var $numeroEnd = 3;
         var $cidade = ala;
         var $cep = 4402;
         var $estado = ba;
         var $bairro = "campo limpo";


/**
	 * Testa o cadastro de disciplina no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadDiscipline(){
         global $database;
        $disciplineid = Register::register_disciplina($this->nome, $this->codigo, $this->departamentoid, $this->tipodisciplina, $this->cargahoraria, $this->semestre);
       
        $database -> query("SELECT * FROM Disciplina WHERE ID='$disciplineid'");
        $nomeretornado = $database-> get('Disciplina', 'nome');
        $codigoretornado = $database-> get('Disciplina', 'codigo');
        $cargahorariaretornada = $database-> get('Disciplina', 'cargahoraria');

        UnitTestCase::assertEqual($this->nome, $nomeretornado);
        UnitTestCase::assertEqual($this->codigo, $codigoretornado);
        UnitTestCase::assertEqual($this->cargahoraria, $cargahorariaretornada);
    }

/**
	 * Testa o cadastro de departamento no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadDepartment(){
        global $database;
        $departmentid = Register::register_department($this->nomedepartamento, $this->emaildepartamento);

        $database-> query ("SELECT * FROM  Departamento WHERE ID='$departmentid'");
        $nomedepartamentoretornado = $database-> get('Departamento', 'nome');
        $emailretornado = $database-> get('Departamento', 'email');

        UnitTestCase::assertEqual($this->nomedepartamento,$nomedepartamentoretornado);
        UnitTestCase::assertEqual($this->emaildepartamento, $emailretornado);
    }

/**
	 * Testa o cadastro de uma disciplina em um determinado semestre no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadOfertaSemestral(){
        global $database;
       // $ofertasemestralid = Register::register_ofertasemestral($this->disciplina, $this->semestreOfertaSemestral, $this->docente, $this->numerovagas);

        $database->query ("SELECT * FROM OfertaSemestral_Disciplina WHERE Disciplina_ID='$this->disciplina' AND OfertaSemestral_ID= '$this->semestreOfertaSemestral'");
        $semestreretornado = $database->get('OfertaSemestral_Disciplina', 'semestre');
        $disciplinaretornada = $database->get('OfertaSemestral_Disciplina', 'disciplina');
        $docenteretornado = $database->get('OfertaSemestral_Disciplina', 'docente');
        $numerodevagasretornado = $database->get('OfertaSemestral_Disciplina', 'nVagas');

        //UnitTestCase::assertEqual($this->disciplina, $disciplinaretornada);
        //UnitTestCase::assertEqual($this->semestreOfertaSemestral, $semestreretornado);
        //UnitTestCase::assertEqual($this->docente, $docenteretornado);
        UnitTestCase::assertEqual($this->numerovagas, $numerodevagasretornado);
            
    }
/**
	 * Testa o cadastro de um semestre no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadSemestre(){
        global $database;
        $ofertasemestralid = Register::register_semestre($this->semestrecadSemestre);

         $database-> query ("SELECT * FROM  OfertaSemestral WHERE ID='$ofertasemestralid'");
         $semestreofertasemestralRetornado = $database-> get('OfertaSemestral', 'semestre');

         UnitTestCase::assertEqual($this->semestrecadSemestre, $semestreofertasemestralRetornado);
    }

    /**
	 * Testa o cadastro de um usuario no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadUser(){
        global $database;
        $userid = Register::register_user($this->login, $this->nomeuser, NULL, NULL, $this->cpf, $this->email);

        $database-> query("SELECT * FROM Usuario WHERE ID='$userid'");
        $loginretornado = $database->get('Usuario', 'login');
        $nomeretornado = $database->get('Usuario', 'nome');
        $tiporetornado = $database->get('Usuario', 'tipo');

        $cpfretornado = $database->get('Usuario', 'cpf');
        $emailretornado = $database->get('Usuario', 'email');

        UnitTestCase::assertEqual($this->login, $loginretornado);
        UnitTestCase::assertEqual($this->nomeuser, $nomeretornado);
        UnitTestCase::assertEqual(null, null);

        UnitTestCase::assertEqual($this->cpf, $cpfretornado);
        UnitTestCase::assertEqual($this->email, $emailretornado);        
    }
 /**
	 * Testa o cadastro de um telefone no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadPhone(){
        global $database;
        Register::register_phone($this->useridphone, $this->numerophone);

        $database->query("SELECT * FROM Telefone WHERE numero='$this->numerophone'");
        $useridretornado = $database->get('Telefone', 'Usuario_ID');
        $numeroretornado = $database->get('Telefone', 'numero');

        UnitTestCase::assertEqual($this->useridphone, $useridretornado);
        UnitTestCase::assertEqual($this->numerophone, $numeroretornado);
    }

 /**
	 * Testa o cadastro de um endereço no banco de dados.
	 * @author Igo
	 * @param
	 * @return unknow
	 */
    public function testCadEnd(){
        global $database;
        Register::register_endereco($this->useridEnd, $this->logradouro, $this->numeroEnd, $this->cidade, $this->cep, $this->estado, $this->bairro);

        $database-> query("SELECT * FROM Endereco WHERE Usuario_ID='$this->useridEnd'");
        $useridEndRetornado = $database->get('Endereco', 'Usuario_ID');
        $logradouroRetornado = $database->get('Endereco', 'logradouro');
        $numeroEndRetornado = $database->get('Endereco', 'numero');
        $cidadeRetornado = $database->get('Endereco', 'cidade');
        $cepRetornado = $database->get('Endereco', 'cep');
        $estadoRetornado = $database->get('Endereco', 'estado');
        $bairroRetornado = $database->get('Endereco', 'bairro');

        UnitTestCase::assertEqual($this->useridEnd, $useridEndRetornado);
        UnitTestCase::assertEqual($this->logradouro, $logradouroRetornado);
        UnitTestCase::assertEqual($this->numeroEnd, $numeroEndRetornado);
        UnitTestCase::assertEqual($this->cidade, $cidadeRetornado);
        UnitTestCase::assertEqual($this->cep, $cepRetornado);
        UnitTestCase::assertEqual($this->estado, $estadoRetornado);
        UnitTestCase::assertEqual($this->bairro, $bairroRetornado);
    }

}


?>
